#ifndef HC_AUTOVAR_STRING
#define HC_AUTOVAR_STRING

#include <hcAutoVar4.hpp>
class hcAutoVarString
{
public:
	static hcAutoVar4 str2AutoVar(const string& str) {
		// 尝试解析为布尔值
		if (str == "true" || str == "True" || str == "TRUE") {
			return hcAutoVar4(true);
		}
		if (str == "false" || str == "False" || str == "FALSE") {
			return hcAutoVar4(false);
		}
		// 尝试解析为整数
		try {
			size_t pos = 0;
			int i = std::stoi(str, &pos);
			if (pos == str.length()) {
				return hcAutoVar4(i);
			}
		}
		catch (...) {
			// 不是整数，继续尝试其他类型
		}

		// 尝试解析为浮点数
		try {
			size_t pos = 0;
			double d = std::stod(str, &pos);
			if (pos == str.length()) {
				return hcAutoVar4(d);
			}
		}
		catch (...) {
			// 不是浮点数，继续尝试其他类型
		}
		// 默认作为字符串返回
		return hcAutoVar4(str);
	}
};

#endif;

